Google开发者又又又被封号?为什么!!!
关联下架是大部分谷歌开发者都会遇到的问题,下面这封邮件大家应该都不陌生。
这是一封谷歌关联下架的模板邮件,即使你尝试去询问具体的下架原因或申诉自己没有违规,都是没啥用的,一旦被关联就是封号下架。
Google 账户关联是指什么?
账户关联是就是当Google开发者账号因为各种原因被封停了,此时如果再注册新的开发者账号也会被谷歌封停。Google邮件中也已经说了,请不要尝试注册新的开发者账号,就是说再次注册也会被关联封停,对,没看错,就是这么恶心。
常有群友问,有没有什么方法是可以万无一失,确保能长久在架的。
那么本期就来科普APP为什么会被关联下架以及怎么避免关联下架。
Google的关联关系,目前公认的判定者是机器。也就是谷歌通过机器算法,针对开发者账号的各种信息和行为进行对比,然后根据对比结果来判定是否是关联账号。
如果大家对评分卡有一定的了解,那么可以把Google的这个判定规则比做一套评分卡系统,简单的理解就是机器通过对开发者账号相关的各种字段与黑名单库进行对比。然后每一个字段都会有具体的分值。当分值超过某一个值时,就判定为关联账号。而这其中,有一些字段,单独命中就会直接得到较高的分值。从而确定账号关联关系。(这是一种假设,实际的系统应该比这复杂很多)
Google官方的宣讲会上曾经讲到,平台判定是否关联的维度有70多个,其中收款账户还是在其中占了很大比例。因为如果多个账号都使用了同一个收款账户,那就说明这些账号的最终受益者相同,从而可以推断出这些账号极有可能是由同一个人操控。
对于可能会导致账号关联的因素,和一些同行交流之后,认为有以下几种:
代码关联
接口关联
Google Play框架上报信息关联
设备关联
收付款关联
APP信息关联
下面详解各种关联问题。
1. 代码关联
客户端代码结构相似度过高,框架封装的相似度高,类名方法名变量名等起名规则具有唯一性;使用了相同的域名;使用了非常多第三方框架等等。
部分开发者,可能会将同一套代码,用不同的开发者账号提审,或对那些被下架或拒审的应用包,简单的改下包名,就又重新上架了,这样就会操作apk里面有大量资源及其他文件同名,这个很危险,也很容易造成关联。
此外,代码混淆不到位。混淆能做到什么程度就做到什么程度,不要抱有侥幸心理。
2. 接口关联
如果你提交的包被封了,那么下次提交时一定要更换服务器的IP地址和域名,一般游戏的HTTP请求是明文的,就是客户端发送给服务器的HTTP请求会把服务器的域名写的很清楚,Google会毫不客气地封掉这个域名,所以光换IP地址,不换服务器域名,是没有用的。
所以上新包的时候,ip要换新的,域名也要换新的,更改接口结构,加密数据传输。
3. Google Play框架上报信息关联
云测是可能导致关联的操作,目前市面的模拟器例如夜神之类的指纹环境都是基于中国来进行设置,假如我们的包出现Crash活ANR异常,那么因为设备上本身安装有Google Play相关框架,很容易被谷歌检测到运行的后台信息,并上报给Google后台,所以如果要做到毫无破绽建议不使用云测。
开启Play保护机制也是可能导致关联的操作,切记设备安装Google Play之后,一定要关掉Play保护机制,因为我们已经验证,开启Play保护机制,Google Play会不定时上传设备上APP信息,从而导致可能的关联风险。
4. 设备关联
很多开发者都有在本地电脑登录开发者账号导致封号的经历(前提是本地电脑曾经登录过被封账号)。我们曾经尝试过重置系统,清除缓存等策略。但是依然有中招的,后来就不敢再验证了(成本太高,而且无法确定是什么规则导致了关联),后来就直接采用VPS服务器的方式进行。这也是目前避免账号关联的基础操作。
设备这块,VPS服务器已经是最好的解决方案了。当然,如果你只有唯一一个开发者账号,而且从未有过违规记录。还是可以在本地登录的,配备一个稳定的虚拟专用网络就没有任何问题。
5. 收付款关联
关于付款,开通开发者计划所支付的25刀所使用的付款卡,如果是采用自己的卡支付,那么卡相关的信息已经被记录了。如果使用同样的卡支付其它的开发者账号,那么这个关联关系是非常强的。如果让我去制定账号关联关系,支付卡这一条信息,肯定也是首选的。
为了避免这种情况,最好的办法就是一个账号对应一张卡。最好是每个账号对应的人都是不一样的。如果实在做不到,可以尝试一个人不同卡进行支付。
收款卡,这一块主要就是当你的APP有付费项目时,一定要慎重填写。填写的收款信息一定要是干净的,可以使用自己的收款卡。
这里的原则就是,不同开发者账号,收款信息分开。不要混用。
6. APP信息关联
不知道大家是否注意到,开发者账号可以主动关联AdMob,Google Analytics,Firebase这些平台,还有就是添加测试账号这些内容。假设你没有主动关联的时候,谷歌也知道你所使用的这些账号。但是它不会非常确定说你们是一起的,当你主动关联的时候。它的规则就明确说,你们是一起的!
假设你有一个AdMob账号,之前给某一个APP对接广告,后来这个APP违规被下架了,然后APP对应的开发者账号被封了。这个时候,重新做了一个APP,对接的依然是这个AdMob账号,新的APP被关联的情况是多大呢?当在新App对应的开发者账号后台关联了此AdMob账号,这是不是直接主动告诉了Google你们是同一个人?我想这个时候,谷歌的机器肯定是要把这个账号关闭掉!
那么我们开始另一个关键点,到底怎么避免关联下架。
结合实际上架经验,分享一下如何应对开发者账号被关联问题。我们上面提到6类可能导致账号关联的因素,仔细分析后可以归为4大类,云测平台关联可以完全通过其他技术手段避免,那么下面我们可以总结为,Google封禁关联账号,需要把控三个环节:
账号信息
APP关联信息
设备相关环境及操作
先来看一张思维导图:
1. 账号问题
关于收款、付款账户的原则就是,不同开发者账号,收款、付款信息分开,不要混用。
为了解决这个问题,很多公司或者个人开发者只能去注册多个银行收款账号,再一一绑定到对应的账号后台,不仅过程麻烦,后期管理起来也相当令人头疼。
如果正儿八经想做这块业务,而非小打小闹,其实可以试试接第三方机构来收款,他们由于和境外发卡行有合作,所以能不限量地为每个ID申请不同的银行收款账户,不仅收款账户、申请人姓名不同,这种方法还能避免个人每年5W美金的外汇限制,出账后登陆第三方机构后台,可以统一管理提现到自己国内的银行卡。至于途径大家可以自行百度。
2. APP问题
(1)APP内数据传输,服务器网络(IP、域名)、API接口、SSL证书主体不能与历史重复
(2)APP文案中联系方式,例如:WhatsApp、email、手机号、地址不能与历史重复
(3)APP内三方服务信息,如 firebase、google analytics 、appsflyer 、admob或adSense 、facebook 等,需重建账号或appid ,保证不能与历史重复
(4)APP包名、显示名、应用签名不能与历史重复
(5)APP文件名、类名、协议名、函数名、属性名不能与历史重复
(6)APP Icon 、布局文件名、控件名 ,不能与历史重复
(7)APP内图片资源、脚本资源、视频等媒体资源文件,hash值不能与历史重复
(8)APP内隐私政策、用户协议、以及其他文本协议,名称、内容,不能与历史重复
(9)代码混淆,相似度越低越好,相似性 < 40%,有条件重构最好
(10)UI与之前不同,从外表看与被下架的产品有结构上的区别
3. 设备相关环境及操作问题
(1)申请账号和操作设备
Google开发者账号的申请和使用,基本原则:单人、单设备、单账号、单IP、单VPN。
为了保险起见,建议使用 VPS服务器,做到一个账号绑定一个设备,不要登录多个账号来回切换,否则很容易被后台检测出来。当然,如果只有一个开发者账号,而且从未有过违规记录,还是可以在本地登录,配备一个稳定的vpn就没有任何问题。
如果使用一台登录过被封禁的Google开发者账号的电脑去操作,结果一定会凉凉。
(2)上传时机
新注册的开发者账号,最好登录设备,养几天号后再进行提交审核操作。
如果有多个包,需要间隔上传,发布成功一个,则上传下一个。因为同一天可能被同一个人审核,以避免造成同时被拒/下架。
(3)浏览器语言环境,不能与历史重复
例如上次使用简体中文,下次提交可使用繁体中文或英语环境。
(4)应用描述、应用截图不能与历史重复
(5)alpha、base测试版发布,测试人员账号不能与历史重复
(6)隐私协议不能与历史重复
以上这些内容,希望能给大家带来帮助,如果大家有同样的情况也可以互相交流。对于开发者来说,要在Google Play平台上发布应用,需要遵守他们的规则。如果因为触犯规则导致账号被封,那就得不偿失了。
在谷歌目前的机器规则下,你一次是坏人,那么永远就是坏人,把曾经违规的账号相关信息永远封存,不再用于新的开发者账号中是最优策略。